//
//  BluetoothClass.h
//  BlueToothTest
//
//  Created by apple on 15/10/10.
//  Copyright © 2015年 SherrySorftware. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <CoreBluetooth/CoreBluetooth.h>
#import <UIKit/UIKit.h>
@protocol bluetoothClassDelegate <NSObject>

/*!
 *  @author  jiaminqi_u@126.com, 15-10-10 13:10:19
 *
 *  @brief  获取到新设备信息 传值到controller刷新tableview
 *
 *  @param arr 更新的数组
 */
@optional
- (void)updataAndReload:(NSArray*)arr;

/*!
 *  @author  jiaminqi_u@126.com, 15-10-12 10:10:57
 *
 *  @brief  获得新的数据之后 传值到controller解析
 *
 *  @param data
 */
- (void)didGetNewData:(NSString*)data;

/*!
 *  @author  jiaminqi_u@126.com, 15-10-12 13:10:28
 *
 *  @brief  连接状态更新
 *
 *  @param state 当前状态
 */
@optional
- (void)updataConnetionState:(NSString*)state;
@optional
- (void)updataLog:(NSString*)log;
@end

@interface BluetoothClass : NSObject<CBCentralManagerDelegate,CBPeripheralDelegate>

@property(strong, nonatomic) NSMutableArray   *arr_characteristic;/**< 扫描的全部特征*/
@property(strong, nonatomic) NSMutableArray   *peripheralInfos;/**< 收索到蓝牙设备的信息*/
@property(strong, nonatomic) NSMutableArray   *didDiscoverPeripheral;/**< 搜索到的蓝牙设备*/
@property(strong, nonatomic) CBCentralManager *manager;/**< 系统蓝牙设备管理对象，可以把他理解为主设备，通过他，可以去扫描和链接外设*/
@property(strong, nonatomic) CBPeripheral *selectPeripheral;/**< 选择的设备*/
@property(strong, nonatomic) id<bluetoothClassDelegate>delegate;
//@property(strong, nonatomic) NSTimer *reconnecTimer;/**< 断开定时尝试重连 */
/*!
 *  @author  jiaminqi_u@126.com, 15-10-10 11:10:36
 *
 *  初始化蓝牙设备
 */
- (void)initBluetoothManager;
/*!
 *  @author  jiaminqi_u@126.com, 15-10-10 14:10:42
 *
 *  @brief  连接某一个设备 需要传入外设或者在列表的下标
 *
 *  @param peripheral 外设
 *  //@param index      如果不传外设设备 则传入连接的设备在数组里的下标
 */
- (void)connetDevice:(CBPeripheral *)peripheral ;//withIndex:(NSInteger)index;

/*!
 *  @author  jiaminqi_u@126.com, 15-10-13 16:10:37
 *
 *  @brief  写数据到设备
 *
 *  @param data 需要写入的数据
 */
- (void)writeDateWithData:(NSData*)data;
/*!
 *  @author  jiaminqi_u@126.com, 15-10-16 14:10:32
 *
 *  @brief  转换十六进制数据为十进制
 */
+ (NSString*)interChangeValue:(NSString*)string;
/*!
 *	@author  jiaminqi_u@126.com
 *
 *	@brief 获取已经连接的设备
 *
 *	@param cbuuidArr   保存的uuid数组
 *
 *	@return
 */
- (NSArray*)findDidConnectDivice:(NSArray *)cbuuidArr;
/*!
 *	@author  jiaminqi_u@126.com
 *
 *	@brief 查找附近的设备
 */
- (void)findDiviceNearMe;

+(BluetoothClass*)shareAppDelegate;

@end
